package cn.psvmc.cxzapi.mapper.system;

import cn.psvmc.cxzapi.config.mybatisplus.mapper.MyBaseMapper;
import cn.psvmc.cxzapi.model.common.SearchEntity;
import cn.psvmc.cxzapi.model.system.TUser;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 用户表 Mapper 接口
 * @Author auto
 * @Date 2024-08-08
 */
public interface TUserMapper extends MyBaseMapper<TUser> {

    //根据手机号获取平台用户信息
    Map<String, Object> getUserByUserPhone(@Param("userphone") String userphone);

    //平台用户列表
    IPage<Map> listAll(Page<TUser> iPage,@Param("entity") SearchEntity entity);

    //商家用户列表
    IPage<Map> listSj(Page<TUser> iPage,@Param("entity") SearchEntity entity);

    String getMenuIdsByUserId(@Param("userid") Integer userid);

    //权限菜单
    List<Map<String, Object>> listMenu(@Param("menuIds") String menuIds, @Param("usertype") Integer usertype);

    //获取指定类型和手机号下账户数量
    Map countByTypeAndPhone(@Param("usertype") Integer usertype, @Param("userphone") String userphone);

    //获取指定商家和手机号下账户信息
    Map<String, Object> getUserByStoreIdAndPhone(@Param("storeid") Integer storeid,@Param("userphone") String userphone);

    //获取用户的商家列表
    List<Map<String,Object>> listStoreByPhone(@Param("userphone") String userphone);

    //根据用户id获取用户信息
    Map<String, Object> getUserById(@Param("userid") Object userid);

    //根据用户id更新用户信息
    void updateByUserId(@Param("user") TUser tUser);

    //根据手机号更新用户锁定状态
    void updateUserLockByPhone(@Param("userphone") String userphone, @Param("userlock") int userlock);
}
